// promisee的本质，也就是使用回调函数 定义的异步任务所需要执行的任务，只不过这里的回调函数是通过then方法传递进去的。
// promise 常见误区
function ajax(url) {
    return new Promise(function(resolve, reject) {
        var xhr = new XMLHttpRequest()
        xhr.open('GET',url)
        xhr.responseType = 'json'
        xhr.onload = function() {
            if(this.status === 200) {
                resolve(this.response)
            }else {
                reject(new Error(this.statusText))
            }
        }
        xhr.send()
    }) 
}
ajax('api/user.json').then(function(urls) {
    ajax(urls.users).then(function(users){
        ajax(urls.users).then(function(users){
            // ... 还是会形成回调地狱 promise 没有了意义
        }) 
    }) 
},function(error) {
    console.log(error)
})

// 好的方法 就是使用promise的链是调用 避免回调地狱